<!DOCTYPE html>
<title>This tests that media element controls are reset to their default state when the src is changed to an invalid url.</title>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="media-controls.js"></script>
<video></video>
<script>
async_test(function(t) {
    var video = document.querySelector("video");
    video.src = "content/test.ogv";

    video.oncanplaythrough = t.step_func(function() {
        video.oncanplaythrough = null;
        assert_equals(video.currentTime, 0);
        assert_equals(getMediaControlTimelineValue(), 0);
        // Seeking to time value 1.0
        video.currentTime = 1.0;
    });

    video.onseeked = t.step_func(function() {
        assert_equals(video.currentTime, 1);
        assert_equals(getMediaControlTimelineValue(), 1);
        // Change video source to an invalid one
        video.src = "/invalid.mov";

    });

    video.onerror = t.step_func_done(function() {
        assert_equals(video.currentTime, 0);
        assert_equals(getMediaControlTimelineValue(), 0);
    });

    function getMediaControlTimelineValue() {
        var timeStr = mediaControlsButton(video, "timeline").value;
        return +timeStr;
    }
});
</script>